package com.platform.modules.sys.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.platform.modules.sys.entity.SysJmCourseEntity;
import com.platform.modules.sys.entity.SysJmCourseUserEntity;
import com.platform.modules.sys.entity.SysUserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author zdz
 * @Title:
 * @Package
 * @Description:
 * @date 2021/7/3 1:54
 */
@Mapper
public interface SysUserSelectCourseDao  extends BaseMapper<SysJmCourseEntity> {


    /**
    * @Description: 分页查询必选任务列表
    * @param page 分页条件
    * @param params 查询条件
    * @return 返回查询到的数据列表
    * @throws
    * @author zdz
    * @date 2021/7/3 12:18
    */
    List<SysJmCourseEntity> selectMuestSelectSysJmCoursePage(IPage page, @Param("params") Map<String, Object> params);


    /**
    * @Description: 分页查询任选任务列表
    * @param page 分页条件
    * @param params 查询条件
    * @return 返回查询到的数据列表
    * @throws
    * @author zdz
    * @date 2021/7/3 12:24
    */
    List<SysJmCourseEntity> selectMaySelectSysJmCoursePage(IPage page, @Param("params") Map<String, Object> params);


    /**
     * @Description: 查询当前用户已选择的任选任务id列表
     * @param params 查询条件
     * @return 返回已选择的任务id列表
     * @throws
     * @author zdz
     * @date 2021/7/3 18:59
     */
    List<String> queryAllMayCourseIds(@Param("params") Map<String, Object> params);

    int deleteAllUserSelect(@Param("userId") String userId, @Param("moduleId") String moduleId);

    int bathInsert(@Param("userSelectCourse") List<SysJmCourseUserEntity> userSelectCourse);

    List<SysJmCourseEntity> queryAllMustSelectCourseByModuleId(@Param("moduleId") String moduleId);

    List<SysJmCourseEntity> queryMaySelectCourseByIds(@Param("courseIds") String[] courseIds);

    int updateMaySelectCourseLess(@Param("userId") String userId, @Param("moduleId") String moduleId);

    int minusCourseLessById(@Param("enoughLessCoures") List<String> enoughLessCoures);
}
